<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>博客详情页</title>
    <link rel="stylesheet" href="css/common.css">
    <link rel="stylesheet" href="css/blog_detail.css">

    <!-- 引入 editor.md 的依赖 -->
    <link rel="stylesheet" href="editor.md/css/editormd.min.css"/>
    <script src="js/jquery.min.js"></script>
    <script src="editor.md/lib/marked.min.js"></script>
    <script src="editor.md/lib/prettify.min.js"></script>
    <script src="editor.md/editormd.js"></script>

</head>
<body>
<!-- 导航栏 -->
<div class="nav">
    <img src="img/head1.jpg" alt="">
    <span>My Space</span>
    <!-- 空白元素 实现占位 -->
    <div class="spacer"></div>
    <a href="index.html">主页</a>
    <a href="blog_edit.html">写博客</a>
    <a href="logout">退出</a>
</div>
<!-- 这里的.container作为页面的版心 -->
<div class="container">
    <!-- 左侧个人信息 -->
    <div class="left">
        <!-- 表示整个用户的信息区域 -->
        <div class="card">
            <img src="img/head.jpg" alt="">
            <h3></h3>
            <a href="https://github.com/lt152">github地址</a>
            <div class="counter">
                <span>文章</span>
                <span>分类</span>
            </div>
            <div class="counter">
                <span>4</span>
                <span>1</span>
            </div>
        </div>
    </div>
    <!-- 右侧内容详情 -->
    <div class="middle" style="width: 971px">
        <!-- 使用这个 div 来包裹整个博客的内容详情 -->
        <div class="blog-content">
            <!-- 博客标题 -->
            <h3></h3>
            <!-- 博客的时间 -->
            <div class="date"></div>
            <!-- 正文 -->
            <div id="content" style="opacity: 75%">

            </div>
        </div>
    </div>
</div>
<script>
    function getBlogDetail() {
        $.ajax({
            type: 'get',
            // location.search 获得了?后面的键值对
            url: 'blog' + location.search,
            success: function (body) {
                //根据body中的内容来构造页面
                //构造博客标题
                let h3 = document.querySelector(".blog-content>h3")
                h3.innerHTML = body.title;
                //构造博客发布时间
                let dateDiv = document.querySelector('.date');
                dateDiv.innerHTML = body.postTime;
                // 构造博客正文
                // 如果直接把 content 设为 innerHTML, 此时展示在界面上的内容, 是原始的 markdown 字符串需要的是渲染后的带有格式的效果
                // let content = document.querySelector('#content');
                // content.innerHTML = body.content;

                // 第一个参数对应 id=content 的 html 标签. 渲染后得到的 html 片段就会被放到下mian
                editormd.markdownToHTML('content', {
                    markdown: body.content,
                });
            }
        });
    }

    getBlogDetail();

    //通过 get /login 这个接口来获取当前的登录状态
    function getUserInfo() {
        $.ajax({
            type: 'get',
            url: 'login',
            success: function (body) {
                //判定此处的body是不是一个有效的user对象（userId是否非0）
                if (body.userId && body.userId > 0) {
                    //登录成功，不做处理
                    console.log("当前用户登录成功，用户名：" + body.username);

                    //在getUserInfo的回调函数里，来获取作者信息
                    getAuthorInfo(body);

                } else {
                    //登录失败，让前端页面跳转到login.html
                    alert("当前您尚未登录！请登录后再访问博客列表！");
                    location.assign('login.html');
                }
            },
            error: function () {
                alert('当前您尚未登录！请登录后再访问此页面！');
                location.assign('login.html');
            }
        });
    }

    //判定用户登录状态
    getUserInfo();

    //从服务器获取一下当前博客的作者信息，并显示到页面上
    function getAuthorInfo(user) {
        $.ajax({
            type: 'get',
            url: 'authorInfo' + location.search,
            success: function (body) {
                //此处的body就是服务器返回的user对象
                if (body.username) {
                    changeUserName(body.username);

                    if (body.username === user.username) {
                        //作者和登录的用户是一个人，则显示“删除按钮”
                        let navDiv = document.querySelector('.nav');
                        let a = document.createElement('a');
                        a.innerHTML = '删除博客';
                        //期望点击删除按钮, 构造一个形如 blogDelete?blogId=6 这样的请求
                        a.href = 'blogDelete' + location.search;
                        navDiv.appendChild(a);
                    }
                } else {
                    console.log("获取作者信息失败" + body.reason);
                }
            }
        });
    }

    function changeUserName(username) {
        let h3 = document.querySelector('.card>h3');
        h3.innerHTML = username;
    }


</script>

</body>
</html>